#if ! defined ( ROBOT_H )
#define ROBOT_H

//--------------------------------------------------- Interfaces utilisées
#include <string>
#include <iostream>
#include <fstream>

#include "Outils.h"
#include "Reseau.h"
#include "NormalDistribution.h"
#define SIM
#ifdef SIM
#include <webots/Supervisor.hpp>
#endif

using namespace std;
//------------------------------------------------------------- Constantes

//------------------------------------------------------------------ Types

//------------------------------------------------------------------------
// Role de la classe <Reseau>
//
//------------------------------------------------------------------------

class Robot
{
//----------------------------------------------------------------- PUBLIC

public:
//----------------------------------------------------- Méthodes publiques
  Robot();
  Robot(char * name);
  ~Robot();

  void Save(char * name);
  Reseau* GetReseau();
  float GetFitness();
  void SetFitness(float fitness);
  void CalculerFitness(structInfosSortie infosSortie[NB_JEUX] );
  structInfosSortie Jouer(webots::Supervisor*,webots::Field* coordKhep1,webots::Field* coordKhep2,webots::Field* coordBall,double coordBordsTerrain [4][2],double rediusBall);


protected:
//----------------------------------------------------- Méthodes protégées

//----------------------------------------------------- Attributs protégés
  Reseau * monCerveau;
  float fitness;

};

//--------------------------- Autres définitions dépendantes de <Robot>
#endif
